A system-on-chip (SOC) is an integrated circuit (IC) that includes a plurality of different subsystems. The subsystems are included within a single chip substrate. The subsystems of the SOC are integrated to work cooperatively with one another. One example of an SOC is a chip level implementation of a computer or other data processing system. For example, the SOC may include a processor that executes program code such as an operating system. The processor operates cooperatively with one or more other on-chip subsystems. The other subsystems may be digital circuits, analog circuits, mixed-signal circuits, or the like. Exemplary subsystems that may be included within an SOC and operate cooperatively with a processor may include, but are not limited to, wireless transceivers, signal processors, CODECs, memory, I/O peripherals, memory controllers, and the like.
The subsystems of the SOC often are so varied and specialized that the SOC manufacturer chooses to obtain one or more of the subsystems from third-party Intellectual Property (IP) providers rather than design the subsystems internally. Each subsystem typically has one or more configuration settings that control the functionality and/or behavior of the subsystem. In the usual case, a subsystem has hundreds or thousands of different configuration settings. Taking a system-wide view, the number of configuration settings of an SOC may be overwhelming to a user of the SOC attempting to implement a circuit design therein.
Further, many configuration settings may be changed only under specific circumstances and by following specific procedures. When the user wishes to change configuration settings from the default configuration settings of one or more subsystems in an attempt to achieve improved performance, the user must know the precise circumstances and procedures to be followed for each such subsystem. If the circumstances are not observed and the procedures not followed, attempted changes to the configuration settings do not take effect within the SOC. The user, however, may not be aware that the desired change to the configuration setting was not implemented.